from flask import Flask , request
from flask import render_template  # flask自带的一种方法 可以使python用html来表现
# 服务端：中央登记中心

app = Flask(__name__)
# 1. 路由：url
# 1.1 相对路径（只是路径的一部分，绝对路径是一个完整的路径），一部分：相对IP地址的，即endpoint(终结点)
# 1.2 request，methods [GET默认][POST] -->请求的方法
# 2.视图函数： <代码储存在函数中然后以美观的视图返回给用户>
# 2.1 代码块，用来处理数据的。（python核心）
# 2.2 返回值：可以为文本、HTML文件（最常用，用户体验高，UI美观简洁）、Json文件，数据处理方便，常用于数据传递
# ！ 视图函数名不能重复   路由名也不能重复

# 2.  request,methods[GET]
@app.route('/')
def hello_world():  # put application's code here
   # return '<h1>Hello World!</h1>'
    return render_template('hello.html')    # 对某个方法查看用法点击这个方法后按ctrl

# 2. request,methods[POST]
@app.route('/index')
def index():
    return render_template('index.html')

@app.route('/shopping')
def shopping():
    return render_template('shopping.html')

@app.route('/result',methods=['POST'])   # 一般来说请求和返回都要用同一种方法methods,否则会返回405
def result():
    # 用户数据提交到这里     # 然后我们用函数代码 request来处理 接受用户数据
    py_firstname = request.form['firstname']
    py_lastname = request.form['lastname']
    py_fullname = py_firstname.title() + " " + py_lastname.title()
    py_serch4letters = set(request.form['word']) & set(request.form['vowels'])
    return render_template('result.html',           # 这个是最终返回给用户看到的页面/result
                           fullname = py_fullname,
                           serch4letters = py_serch4letters)      # 这一行就使得html和py相连接，  fullname在结果页面/result 中使用了占位符{{}}


if __name__ == '__main__':
    app.run()



